// 当前文件做权限使用
// 引入 store
import store from '@/store/'
// 引入 router
import router from '@/router/'

// 白名单
const WhiteList = ['/login', '/404']
// 路由的前置守卫
router.beforeEach(async(to, from, next) => {
  // 每次路由跳转的时候都会取值，如果放在外面token就只会取一次
  const token = store.getters.token
  if (token) {
    // 有token
    // 判断是否跳转登录页
    if (to.path === '/login') {
      next('/')
    } else {
      // token已经存在
      // 成功获取会数据之后才能进行跳转（同步）
      // 是否有userId来判断userInfo中是否有数据
      if (!store.getters.userId) {
        await store.dispatch('user/asyncGetUser')
        // console.log(store.state.user.userInfo)
      }
      next()
    }
  } else {
    // 没有token
    // 判断是否在白名单内
    if (WhiteList.includes(to.path)) {
      next()
    } else {
      next('login')
    }
  }
})
